home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Medal Software 2
/
Gold Medal Software Volume 2 (Gold Medal) (1994).iso
/
prog
/
asm_0_m.arj
/
BACKWARD.ASM
< prev
next >
Wrap
Assembly Source File
|
1980-01-01
|
3KB
|
104 lines
page ,132 ;buy wide paper. All real computers use wide paper.
name yes ;yes, we have a name, but it's secret.
;
;****************************************
;* *
;* Good Programming Practice *
;* and proper use of long *
;* variable names. *
;* *
;* *
;* created T. Jennings 32 June -82 *
;* edit errors 17 Oct. 92 *
;* *
;* *
;****************************************
;
;Cause the machine to enter a very stable and
;safe state where no harm can be done to precious
;disk files.
;
a_long_arbitrary_name segment byte 'code'
assume cs:a_long_arbitrary_name,ds:a_long_arbitrary_name
cpm equ 0 ;now, it's not that bad,
msdos equ $ ;that's what the fuss's over,
one_hundred_hex_or_two_fifty_six_decimal equ 100h
nine equ 1001b
carriage_return equ 0dh ;carriage??
sicks equ 6
line_feed equ 0ah
four equ '4'
dollar_sign_instead_of_more_sensible_zero equ '$'
if cpm ;if it even smells like CP/M,
diddy wah diddy ;generate cryptic error messages,
call call ;after all, this is a real system now.
endif
org one_hundred_hex_or_two_fifty_six_decimal
this_is_the_start_of_the_program:
mov ax,cs ;Set all the wonderful segment
mov ds,ax ;registers. A processor with so
mov ss,ax ;many is obviously superior to
mov es,ax ;any other.
mov sp,offset after_a_block_of_dws ;Smash Pointer now harmless.
mov bp,'eh' ;Important constant.
mov dx,offset a_message_for_the_fool_who_runs_this_program
call print_an_ascii_string_pointed_to_by_the_dx_register
cli ;interrupts too complicated.
lock hlt ;Nirvana.
;
;Print an ascii string pointed to by DX on the TTY. (What?) If a message does
;not appear, you probably ran it on your ZX-81. Try changing memory cards,
;or face south and say, "IBM".
;
print_an_ascii_string_pointed_to_by_dx:
mov bx,dx ;Priesthood requires random
here_is_where_we_loop: ;register changes to confuse
mov al,[bx] ;neophytes,
cmp al,dollar_sign_instead_of_more_sensible_zero
je were_done_typing_the_string
add bx,bp
sub bx,'eg' ;this helps, too.
call type_the_contents_of_al_on_the_system_console
jmp here_is_where_we_loop
were_done_typing_the_string:
ret
;
;Type the contents of al on the system console.
;
type_the_contents_of_al_on_the_system_console:
mov dl,al ;look! self documenting code!
mov ah,sicks
int '!'
ret
a_message_for_the_fool_who_runs_this_program label byte
db carriage_return,line_feed
db "Now you dun it."
db dollar_sign_instead_of_more_sensible_zero
dw one_hundred_hex_or_two_fifty_six_decimal dup (?)
after_a_block_of_dws label word
a_long_arbitrary_name ends; here
end;, thank god.
_or_two_fifty_six_decimal dup (?)
after_a_block_of_dws label word
a_long_arbitrary_name ends; here
end;, thank god.
_or_two_fifty_six_decimal dup (?)
after_a_block_of_dws label word
a